package com.enqualcomm.kids.mvp.location;


import com.enqualcomm.kids.network.socket.response.LocationResult;

public abstract class LocationCallBack {
    public boolean closeSocketBySelf;

    /**
     * 标记已经进行到哪一阶段了
     * 101:相当于服务器返回的state：2
     * 1:手机网络状况不好
     * 2:手表网络状况不好
     */
    private int currentState = -1;

    public int getCurrentState() {
        return currentState;
    }
    public void setCurrentState(int currentState) {
        this.currentState = currentState;
    }
    /**
     * 超时时间，单位秒
     */
    private int timeout = 10;
    /**
     * 注意是在子线程回调！
     * 如果返回为null，表示网络错误
     * @param state
     * 状态码
     * 1:没有可用网络连接或者连接断开了
     * 2:超时
     * 101:手表已收到指令
     * 102:手表已关机
     * 200:位置信息
     * @param content
     */
    public abstract void onReceiveLocation(int state,LocationResult.Data content);
    /**
     * 需要在activity销毁时调用
     */
    public void invalidate(){
        timeout = 0;
    }

    /**
     * 延长超时时间
     */
    public void holdOn(){
        timeout+= 90;
    }

    /**
     * 重新设定超时时间
     */
    public void init(){
        timeout = 10;
        currentState = -1;
        closeSocketBySelf = false;
    }

    public int getTimeout() {
        return timeout;
    }
    public synchronized boolean checkTimeout(){
//		MyLogger.jLog().i(timeout);
        return --timeout<0;
    }
}


